
// 实现发布订阅模式  切记 事先订阅后发布
class Event{
    constructor(){
        this.events={}
    }
    // 发布
    $emit(name,params){
        // 判断是否存在集合中
        if(this.events[name]){
            // 循环遍历集合中的方法
            this.events[name].forEach(item=>{
                // 调用方法 并传入参数
                item(params)
            })
        }
    }
    // 订阅
    $on(name,cbk){
        // 判断是否存在集合中
        if(!this.events[name]){
            // 不存在添加集合
            this.events[name]=[cbk]
        }else{
            // 存在继续在集合中添加方法
            this.events[name].push(cbk)
        }
    }
    // 关闭
    $off(name){
        this.events[name]=[]
    }
}
export default new Event